#命令(commands)表示如何更新目标文件，由一行或多行的Shell命令组成。这是构建“目标”的具体指令，
#它的运行结果通常是生成目标文件。

#每行命令之前必须有一个tab键，可以用内置变量.RECIPEPREFIX声明
# .RECIPEPREFIX = >
# all:
# > echo Hello, world
#上面代码用.RECIPEPREFIX指定，大于号(>)替代tab键。所以，每一行命令的起首变成了大于号，而不是tab键


#每行命令在一个单独的shell中执行。这些Shell之间没有继承关系。
var-lost:
	export foo=bar
	echo "foo=[$$foo]"

#一个解决办法是将两行命令写在一行，中间用分号分隔。
var-kept:
	export foo=bar;echo "foo=[$$foo]"

#另一个解决办法是在换行符前加反斜杠转义。
var-kept:
	exprot for = bar;\
	echo "foo=[$$foo]"

#最后一个方法是加上.ONESHELL:命令。
.ONESHELL:
var-kept1:
	export foo=bar
	echo "foo=[$$foo]"
